export interface TableInfo {
  table_name: string
  table_schema: string
  table_type: string
  table_comment?: string
}

export interface ColumnInfo {
  column_name: string
  data_type: string
  is_nullable: boolean
  column_default?: string
  column_comment?: string
  ordinal_position: number
}

export interface SchemaInfo {
  tables: TableInfo[]
  columns: { [tableName: string]: ColumnInfo[] }
  keywords: string[]
  functions: string[]
}

export interface AutoCompleteSuggestions {
  tables: TableInfo[]
  columns: ColumnInfo[]
  keywords: string[]
  functions: string[]
}

export interface AutoCompleteContext {
  currentWord: string
  previousWords: string[]
  position: { line: number, column: number }
}

export interface SchemaSearchResult {
  tables: TableInfo[]
  columns: { table: string, columns: ColumnInfo[] }[]
}